|
Application Binary Interface(アプリケーション・バイナリー・インタフェース、ABI)とは、アプリケーションプログラムと基本ソフトウェアであるオペレーティングシステム (OS) の間の低レベルのインタフェースを意味する。あるいはアプリケーションとライブラリ、あるいはアプリケーション内の部品間のインタフェースもABIと言うことがある。 ABIはアプリケーションプログラミングインタフェース (API) とは異なる。APIはソースコードとライブラリ間のインタフェースを定義したものであり、同じAPIをサポートしたシステム間では同じソースコードをコンパイルして利用できる。一方、ABIはオブジェクトコードレベルのインタフェースであり、互換ABIをサポートするシステム間では同じ実行ファイルを変更無しで動作させることができる。 == 概要 == ABIには、以下のような定義が含まれる。 * CPU - 命令セット、エンディアンなど。 * データ - データ型、大きさ、配置(アラインメント)など。 * 呼出規約 - 関数の引数がどのように渡され、リターン値がどのように渡されるかを定義したもの。 * システムコール - システムコール番号と具体的なシステムコールの仕組み。 * 実行ファイルやライブラリの詳細なフォーマット(UNIXならば、COFFやELFなど)。 Intel Binary Compatibility Standard (iBCS) のような完全なABIでは〔Intel Binary Compatibility Standard (iBCS) 〕、OSが何であれ必要な共有ライブラリが存在するなどの前提条件が満たされていれば、そのABIをサポートしたシステム間でプログラム(実行ファイル)を全く修正せずに動作させることができる。 他のABIとして例えばC++の名前修飾〔Itanium C++ ABI (compatible with multiple architectures)〕や例外の伝播〔Itanium C++ ABI: Exception Handling (compatible with multiple architectures)〕や呼出規約があるが、あくまでも同じプラットフォーム上のコンパイラ間のABIであり、プラットフォーム間の互換性までは要求されない。 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「Application Binary Interface」の詳細全文を読む スポンサード リンク
|